Electronic design automation (EDA) is a term used primarily for software tools for designing electronic systems such as integrated circuits (ICs), which include field programmable gate arrays (FPGAs) and application specific integrated circuits (ASICs). EDA tools typically work in a design flow that IC and chip designers can follow for architecting entire semiconductor chips to implement specific functionality or applications. EDA tools provide a graphical display of an electronic system being designed, so that an architect or engineer can efficiently and effectively model the electronic system graphically before the system is implemented in silicon, i.e. via a Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) program or the like.
The design flows of conventional EDA tools are based on state machines. A state machine is a mathematical model of computation, in which an abstract machine can be defined to have any number of states, and in which only one state the machine can exist at any one time. Changes from one state to another state of the model can be defined by a transition, which in turn is defined by an input (present state) and an output (after a processing or computational action on the present state). Modern EDA tools use state machines
State machines can be graphically generated and represented or displayed in an EDA tool. However, as complexity of modern integrated circuits increases, traditional state machine representations by EDA tools become overly complicated and confusing, and architects of electronic circuits can experience frustration and confusion in designing complex electronic circuits.